home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / dns / rdataclass.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  65 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import re
  5. import dns.exception as dns
  6. RESERVED0 = 0
  7. IN = 1
  8. CH = 3
  9. HS = 4
  10. NONE = 254
  11. ANY = 255
  12. _by_text = {
  13.     'RESERVED0': RESERVED0,
  14.     'IN': IN,
  15.     'CH': CH,
  16.     'HS': HS,
  17.     'NONE': NONE,
  18.     'ANY': ANY }
  19. _by_value = []([ (y, x) for x, y in _by_text.iteritems() ])
  20. _by_text.update({
  21.     'INTERNET': IN,
  22.     'CHAOS': CH,
  23.     'HESIOD': HS })
  24. _metaclasses = {
  25.     NONE: True,
  26.     ANY: True }
  27. _unknown_class_pattern = re.compile('CLASS([0-9]+)$', re.I)
  28.  
  29. class UnknownRdataclass(dns.exception.DNSException):
  30.     pass
  31.  
  32.  
  33. def from_text(text):
  34.     value = _by_text.get(text.upper())
  35.     if value is None:
  36.         match = _unknown_class_pattern.match(text)
  37.         if match == None:
  38.             raise UnknownRdataclass
  39.         
  40.         value = int(match.group(1))
  41.         if value < 0 or value > 65535:
  42.             raise ValueError, 'class must be between >= 0 and <= 65535'
  43.         
  44.     
  45.     return value
  46.  
  47.  
  48. def to_text(value):
  49.     if value < 0 or value > 65535:
  50.         raise ValueError, 'class must be between >= 0 and <= 65535'
  51.     
  52.     text = _by_value.get(value)
  53.     if text is None:
  54.         text = 'CLASS' + `value`
  55.     
  56.     return text
  57.  
  58.  
  59. def is_metaclass(rdclass):
  60.     if _metaclasses.has_key(rdclass):
  61.         return True
  62.     
  63.     return False
  64.  
  65.